home *** CD-ROM | disk | FTP | other *** search
/ Winzipper / Winzipper_ISO.iso / nt4.0 server / DRVLIB.NIC / OCTK16 / OEMSETUP.INF < prev    next >
INI File  |  1996-07-31  |  64KB  |  1,845 lines

  1. ;***********************************************************************
  2. ;
  3. ; OEMSETUP.INF
  4. ;
  5. ;       Olicom network card and driver SETUP INF file.
  6. ;
  7. ;***********************************************************************
  8.  
  9. ;-----------------------------------------------------------------------
  10. ; OPTION TYPE
  11. ; -----------
  12. ; This identifies the Option type we are dealing with.  The different
  13. ; possible types are:
  14. ;
  15. ; COMPUTER, DISPLAY, MOUSE, KEYBOARD, LAYOUT, SCSI, PRINTER, ...
  16. ;
  17. ;  Types specific to networking:
  18. ;
  19. ; NetAdapter,        a netcard / adapter combination or just a netcard
  20. ; NetDriver,         just a netcard driver
  21. ; NetTransport,      a complete NDIS-compliant TDI transport stack
  22. ; NetService,        an NT networking service
  23. ; NetWork,           a complete network ensemble.
  24. ; NetProvider        a complete network which supports NT MPR protocol
  25. ;-----------------------------------------------------------------------
  26.  
  27. [Identification]
  28.     OptionType = NetAdapter
  29.  
  30. ;-----------------------------------------------------------------------
  31. ; PlatformsSupported
  32. ; ------------------
  33. ; This identifies the platforms supported by the adapter card.
  34. ; Possible types are:
  35. ;
  36. ; ISA and EISA
  37. ;-----------------------------------------------------------------------
  38.  
  39. [PlatformsSupported]
  40.     ISA
  41.     EISA
  42.     PCMCIA
  43.     PCI
  44.  
  45. [LanguagesSupported]
  46.     ENG
  47.  
  48. ;-----------------------------------------------------------------------
  49. ; OPTION LIST
  50. ; -----------
  51. ; This section lists the OEM Option key names.  These keys are locale
  52. ; independent and used to represent the option in a locale independent
  53. ; manner.
  54. ;
  55. ;-----------------------------------------------------------------------
  56.  
  57. [Options]
  58.     OCTK16
  59.     PCMCIA
  60.     COMBO
  61.  
  62. [OptionsTextENG]
  63.     OCTK16 = "Olicom Token-Ring 16/4 Adapter"
  64.     PCMCIA = "Olicom GoCard TR 16/4"
  65.     COMBO  = "Olicom GoCard TR/Modem 144"
  66.  
  67. [IOBaseAddrChoices]
  68. IOBase_0  = "Auto detect", 0
  69. IOBase_1  = "0A00-0A1F", 2560
  70. IOBase_2  = "0A20-0A3F", 2592
  71. IOBase_3  = "0A40-0A5F", 2624
  72. IOBase_4  = "0A60-0A7F", 2656
  73. IOBase_5  = "0A80-0A9F", 2688
  74. IOBase_6  = "0AA0-0ABF", 2720
  75. IOBase_7  = "0AC0-0ADF", 2752
  76. IOBase_8  = "0AE0-0AFF", 2874
  77. IOBase_9  = "0B00-0B1F", 2816
  78. IOBase_10 = "0B20-0B3F", 2848
  79. IOBase_11 = "0B40-0B5F", 2880
  80. IOBase_12 = "0B60-0B7F", 2912
  81. IOBase_13 = "0B80-0B9F", 2944
  82. IOBase_14 = "0BA0-0BBF", 2976
  83. IOBase_15 = "0BC0-0BDF", 3008
  84. IOBase_16 = "0BE0-0BFF", 3040
  85. IOBase_20 = "0A20-0A23,0A30-0A3F", 2592
  86. IOBase_21 = "0A24-0A27,0A40-0A4F", 2596
  87. IOBase_22 = "0A50-0A53,0A60-0A6F", 2640
  88. IOBase_23 = "0A54-0A57,0A70-0A7F", 2644
  89.  
  90. [ReceiveBufferCountChoices]
  91. RBC_1 = "32",32
  92. RBC_2 = "31",31
  93. RBC_3 = "30",30
  94. RBC_4 = "29",29
  95. RBC_5 = "28",28
  96. RBC_6 = "27",27
  97. RBC_7 = "26",26
  98. RBC_8 = "25",25
  99. RBC_9 = "24",24
  100. RBC_10 = "23",23
  101. RBC_11 = "22",22
  102. RBC_12 = "21",21
  103. RBC_13 = "20",20
  104. RBC_14 = "19",19
  105. RBC_15 = "18",18
  106. RBC_16 = "17",17
  107. RBC_17 = "16",16
  108. RBC_18 = "15",15
  109. RBC_19 = "14",14
  110. RBC_20 = "13",13
  111. RBC_21 = "12",12
  112. RBC_22 = "11",11
  113. RBC_23 = "10",10
  114. RBC_24 = "9",9
  115. RBC_25 = "8",8
  116. RBC_26 = "7",7
  117. RBC_27 = "6",6
  118. RBC_28 = "5",5
  119.  
  120. [TransmitBufferCountChoices]
  121. XBC_1 = "32",32
  122. XBC_2 = "31",31
  123. XBC_3 = "30",30
  124. XBC_4 = "29",29
  125. XBC_5 = "28",28
  126. XBC_6 = "27",27
  127. XBC_7 = "26",26
  128. XBC_8 = "25",25
  129. XBC_9 = "24",24
  130. XBC_10 = "23",23
  131. XBC_11 = "22",22
  132. XBC_12 = "21",21
  133. XBC_13 = "20",20
  134. XBC_14 = "19",19
  135. XBC_15 = "18",18
  136. XBC_16 = "17",17
  137. XBC_17 = "16",16
  138. XBC_18 = "15",15
  139. XBC_19 = "14",14
  140. XBC_20 = "13",13
  141. XBC_21 = "12",12
  142. XBC_22 = "11",11
  143. XBC_23 = "10",10
  144. XBC_24 = "9",9
  145. XBC_25 = "8",8
  146. XBC_26 = "7",7
  147. XBC_27 = "6",6
  148. XBC_28 = "5",5
  149. XBC_29 = "4",4
  150. XBC_30 = "3",3
  151. XBC_31 = "2",2
  152.  
  153. [MaxFrameSizeChoices]
  154. MFS_1 = "8 KBytes",8192
  155. MFS_2 = "6 KBytes",6144
  156. MFS_3 = "4 KBytes",4096
  157. MFS_4 = "2 KBytes",2048
  158.  
  159. [BusNumberChoices]
  160. BusNo_1 = "0",0
  161. BusNo_2 = "1",1
  162. BusNo_3 = "2",2
  163. BusNo_4 = "3",3
  164. BusNo_5 = "4",4
  165. BusNo_6 = "5",5
  166. BusNo_7 = "6",6
  167. BusNo_8 = "7",7
  168.  
  169. [IOBasePCMCIAChoices]
  170. ; 3E0h is where PCIC is (normally) located
  171. ; 240h is where TCIC is (normally) located
  172. ; therefore user cannot select these for locating the adapter
  173. IOBase_1  = "200h",512
  174. IOBase_2  = "220h",544
  175. IOBase_3  = "260h",608
  176. IOBase_4  = "280h",640
  177. IOBase_5  = "2A0h",672
  178. IOBase_6  = "2C0h",714
  179. IOBase_7  = "2E0h",746
  180. IOBase_8  = "300h",768
  181. IOBase_9  = "320h",800
  182. IOBase_10 = "340h",832
  183. IOBase_11 = "360h",864
  184. IOBase_12 = "380h",896
  185. IOBase_13 = "3A0h",928
  186. IOBase_14 = "3C0h",960
  187. IOBase_15 = "A00h",2560
  188. IOBase_16 = "A20h",2592
  189. IOBase_17 = "A40h",2624
  190. IOBase_18 = "A60h",2656
  191. IOBase_19 = "A80h",2688
  192. IOBase_20 = "AA0h",2720
  193. IOBase_21 = "AC0h",2752
  194. IOBase_22 = "AE0h",2784
  195. IOBase_23 = "B00h",2816
  196. IOBase_24 = "B20h",2848
  197. IOBase_25 = "B40h",2880
  198. IOBase_26 = "B60h",2912
  199. IOBase_27 = "B80h",2944
  200. IOBase_28 = "BA0h",2976
  201. IOBase_29 = "BC0h",3008
  202. IOBase_30 = "BE0h",3040
  203.  
  204. [MemWinChoices]
  205. MemWin_1  = "A0000h", 655360
  206. MemWin_2  = "A1000h", 659456
  207. MemWin_3  = "A2000h", 663552
  208. MemWin_4  = "A3000h", 667648
  209. MemWin_5  = "A4000h", 671744
  210. MemWin_6  = "A5000h", 675840
  211. MemWin_7  = "A6000h", 679936
  212. MemWin_8  = "A7000h", 684032
  213. MemWin_9  = "A8000h", 688128
  214. MemWin_10 = "A9000h", 692224
  215. MemWin_11 = "AA000h", 696320
  216. MemWin_12 = "AB000h", 700416
  217. MemWin_13 = "AC000h", 704512
  218. MemWin_14 = "AD000h", 708608
  219. MemWin_15 = "AE000h", 712704
  220. MemWin_16 = "AF000h", 716800
  221. MemWin_17 = "B0000h", 720896
  222. MemWin_18 = "B1000h", 724992
  223. MemWin_19 = "B2000h", 729088
  224. MemWin_20 = "B3000h", 733184
  225. MemWin_21 = "B4000h", 737280
  226. MemWin_22 = "B5000h", 741376
  227. MemWin_23 = "B6000h", 745472
  228. MemWin_24 = "B7000h", 749568
  229. MemWin_25 = "B8000h", 753664
  230. MemWin_26 = "B9000h", 757760
  231. MemWin_27 = "BA000h", 761856
  232. MemWin_28 = "BB000h", 765952
  233. MemWin_29 = "BC000h", 770048
  234. MemWin_30 = "BD000h", 774144
  235. MemWin_31 = "BE000h", 778240
  236. MemWin_32 = "BF000h", 782336
  237. MemWin_33 = "C0000h", 786432
  238. MemWin_34 = "C1000h", 790528
  239. MemWin_35 = "C2000h", 794624
  240. MemWin_36 = "C3000h", 798720
  241. MemWin_37 = "C4000h", 802816
  242. MemWin_38 = "C5000h", 806912
  243. MemWin_39 = "C6000h", 811008
  244. MemWin_40 = "C7000h", 815104
  245. MemWin_41 = "C8000h", 819200
  246. MemWin_42 = "C9000h", 823296
  247. MemWin_43 = "CA000h", 827392
  248. MemWin_44 = "CB000h", 831488
  249. MemWin_45 = "CC000h", 835584
  250. MemWin_46 = "CD000h", 839680
  251. MemWin_47 = "CE000h", 843776
  252. MemWin_48 = "CF000h", 847872
  253. MemWin_49 = "D0000h", 851968
  254. MemWin_50 = "D1000h", 856064
  255. MemWin_51 = "D2000h", 860160
  256. MemWin_52 = "D3000h", 864256
  257. MemWin_53 = "D4000h", 868352
  258. MemWin_54 = "D5000h", 872448
  259. MemWin_55 = "D6000h", 876544
  260. MemWin_56 = "D7000h", 880640
  261. MemWin_57 = "D8000h", 884736
  262. MemWin_58 = "D9000h", 888832
  263. MemWin_59 = "DA000h", 892928
  264. MemWin_60 = "DB000h", 897024
  265. MemWin_61 = "DC000h", 901120
  266. MemWin_62 = "DD000h", 905216
  267. MemWin_63 = "DE000h", 909312
  268. MemWin_64 = "DF000h", 913408
  269. MemWin_65 = "E0000h", 917504
  270. MemWin_66 = "E1000h", 921600
  271. MemWin_67 = "E2000h", 925696
  272. MemWin_68 = "E3000h", 929792
  273. MemWin_69 = "E4000h", 933888
  274. MemWin_70 = "E5000h", 937984
  275. MemWin_71 = "E6000h", 942080
  276. MemWin_72 = "E7000h", 946176
  277. MemWin_73 = "E8000h", 950272
  278. MemWin_74 = "E9000h", 954368
  279. MemWin_75 = "EA000h", 958464
  280. MemWin_76 = "EB000h", 962560
  281. MemWin_77 = "EC000h", 966656
  282. MemWin_78 = "ED000h", 970752
  283. MemWin_79 = "EE000h", 974848
  284. MemWin_80 = "EF000h", 978944
  285. MemWin_81 = "F0000h", 983040
  286. MemWin_82 = "F1000h", 987136
  287. MemWin_83 = "F2000h", 991232
  288. MemWin_84 = "F3000h", 995328
  289. MemWin_85 = "F4000h", 999424
  290. MemWin_86 = "F5000h", 1003520
  291. MemWin_87 = "F6000h", 1007616
  292. MemWin_88 = "F7000h", 1011712
  293. MemWin_89 = "F8000h", 1015808
  294. MemWin_90 = "F9000h", 1019904
  295. MemWin_91 = "FA000h", 1024000
  296. MemWin_92 = "FB000h", 1028096
  297. MemWin_93 = "FC000h", 1032192
  298. MemWin_94 = "FD000h", 1036288
  299. MemWin_95 = "FE000h", 1040384
  300. MemWin_96 = "FF000h", 1044480
  301.  
  302. [InterruptChoices]
  303. Interrupt_1  = "3", 3
  304. Interrupt_2  = "4", 4
  305. Interrupt_3  = "5", 5
  306. Interrupt_4  = "7", 7
  307. Interrupt_5  = "9", 9
  308. Interrupt_6  = "10",10
  309. Interrupt_7  = "11",11
  310. Interrupt_8  = "12",12
  311. Interrupt_9  = "14",14
  312. Interrupt_10 = "15",15
  313.  
  314. [ComPortChoices]
  315. Com_1 = "COM1", 1016
  316. Com_2 = "COM2", 760
  317. Com_3 = "COM3", 1000
  318. Com_4 = "COM4", 744
  319. Com_5 = "COM5", 24
  320. Com_6 = "Disabled", 0
  321.  
  322. [IOBasePCMCIAControllerChoices]
  323. IOBase_1  = "Default",992
  324. IOBase_2  = "3E2h",994
  325. IOBase_3  = "Disable PCMCIA",0
  326.  
  327. [WaitstateChoices]
  328. Waitstate_1  = "0", 0
  329. Waitstate_2  = "1", 1
  330. Waitstate_3  = "2", 2
  331. Waitstate_4  = "3", 3
  332. Waitstate_5  = "4", 4
  333. Waitstate_6  = "5", 5
  334. Waitstate_7  = "6", 6
  335. Waitstate_8  = "7", 7
  336. Waitstate_9  = "8", 8
  337. Waitstate_10 = "9", 9
  338. Waitstate_11 = "10",10
  339. Waitstate_12 = "11",11
  340. Waitstate_13 = "12",12
  341. Waitstate_14 = "13",13
  342. Waitstate_15 = "14",14
  343. Waitstate_16 = "15",15
  344.  
  345. [DatasizeChoices]
  346. Datasize_1 = 1, 1,"&16 Bit"
  347. Datasize_2 = 2, 0,"&8 Bit"
  348.  
  349. [RingSpeedChoices]
  350. RS_1 = "16 Mbps", 16
  351. RS_2 = "4 Mbps", 4
  352.  
  353. ;-----------------------------------------------------------------------
  354. ; Constants for use with dialogs
  355. ;-----------------------------------------------------------------------
  356.  
  357. [FileConstants]
  358. UtilityInf      = "UTILITY.INF"
  359. subroutineinf   = "SUBROUTN.INF"
  360. SoftwareType    = "driver"
  361. Exit_Code       = 0
  362. DialogDllName   = "octk16.dll"
  363. HelpfileName    = "octk16.hlp"
  364. NetEventDLL     = "%SystemRoot%\System32\netevent.dll;%SystemRoot%\System32\Drivers\Octk16.sys"
  365. IoLogMsgDLL     = "%SystemRoot%\System32\IoLogMsg.dll"
  366. Manufacturer    = "Olicom"
  367. ProductMajorVersion     = "3"
  368. ProductMinorVersion     = "23"
  369. ProductVersion          = $(ProductMajorVersion)"."$(ProductMinorVersion)
  370. ProductSoftwareName     = "OcTk16"
  371. ProductSoftwareTitle    = "Olicom Token-Ring 16/4 Adapter Driver"
  372. ProductSoftwareImagePath = "\SystemRoot\System32\drivers\octk16.sys"
  373. NetRuleSoftwareType     = "octk16Sys ndisDriver octk16Driver"
  374. NetRuleSoftwareUse      = $(SoftwareType)
  375. NetRuleSoftwareBindForm = """Octk16Sys"" yes no container"
  376. NetRuleSoftwareClass    = {"octk16Driver basic"}
  377. NetRuleSoftwareBindable = {"octk16Driver octk16Adapter non exclusive 100"}
  378. ProductHardwareName     = "OcTk16"
  379. ProductHardwareOCTK16Title = "Olicom Token-Ring 16/4 Adapter"
  380. ProductHardwarePCMCIATitle = "Olicom GoCard TR 16/4"
  381. ProductHardwareCOMBOTitle  = "Olicom GoCard TR/Modem 144"
  382. NetRuleHardwareType     = "octk16 octk16Adapter"
  383. NetRuleHardwareBindForm = " yes yes container"
  384. NetRuleHardwareClass    = {"octk16Adapter basic"}
  385. ProductKeyName  = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
  386. ParamKeyName    = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
  387.  
  388. [GeneralConstants]
  389. from      = ""
  390. to        = ""
  391. ExitCodeOk     = 0
  392. ExitCodeCancel = 1
  393. ExitCodeFatal  = 2
  394. KeyNull         = ""
  395. MAXIMUM_ALLOWED   = 33554432
  396. RegistryErrorIndex = NO_ERROR
  397. KeyProduct      = ""
  398. KeyParameters   = ""
  399. TRUE            = 1
  400. FALSE           = 0
  401. NoTitle         = 0
  402. ExitState       = "Active"
  403. OldVersionExisted = $(FALSE)
  404. DriverPath      = $(!STF_NTPATH)\drivers
  405. [FileConstantsENG]
  406. ProCaption   = "Windows NT Setup"
  407. ProCancel    = "Cancel"
  408. ProCancelMsg = "Windows NT Networking is not correctly installed.  "+
  409.            "Are you sure you want to cancel copying files?"
  410. ProCancelCap = "Network Setup Message"
  411. ProText1     = "Copying:"
  412. ProText2     = "To:"
  413. OCTK16FunctionTitle = "Olicom Token-Ring 16/4 Adapter Setup"
  414. PCMCIAFunctionTitle = "Olicom GoCard TR 16/4 Setup"
  415. COMBOFunctionTitle  = "Olicom GoCard TR/Modem 144 Setup"
  416. ProductHardwareOCTK16Description = "Olicom Token-Ring 16/4 Adapter"
  417. ProductHardwarePCMCIADescription = "Olicom GoCard TR 16/4"
  418. ProductHardwareCOMBODescription  = "Olicom GoCard TR/Modem 144"
  419. ProductSoftwareDescription       = "Olicom Token-Ring Adapter Driver"
  420. FunctionTitle   = $($(Option)FunctionTitle)
  421.  
  422. IOBaseAddrList = ^(IOBaseAddrChoices, 1)
  423. IOBaseAddrValues = ^(IOBaseAddrChoices, 2)
  424. RcvBufCountList  = ^(ReceiveBufferCountChoices, 1)
  425. RcvBufCountValues = ^(ReceiveBufferCountChoices, 2)
  426. XmitBufCountList = ^(TransmitBufferCountChoices, 1)
  427. XmitBufCountValues = ^(TransmitBufferCountChoices, 2)
  428. FrameSizeList = ^(MaxFrameSizeChoices, 1)
  429. FrameSizeValues = ^(MaxFrameSizeChoices, 2)
  430. BusNoList = ^(BusNumberChoices, 1)
  431. BusNoValues = ^(BusNumberChoices, 2)
  432. IOBasePCMCIAList = ^(IOBasePCMCIAChoices, 1)
  433. IOBasePCMCIAValues = ^(IOBasePCMCIAChoices, 2)
  434. MemWinList = ^(MemWinChoices, 1)
  435. MemWinValues = ^(MemWinChoices, 2)
  436. InterruptList = ^(InterruptChoices, 1)
  437. InterruptValues = ^(InterruptChoices, 2)
  438. RingSpeedList = ^(RingSpeedChoices, 1)
  439. RingSpeedValues = ^(RingSpeedChoices, 2)
  440. ComPortList = ^(ComPortChoices, 1)
  441. ComPortValues = ^(ComPortChoices, 2)
  442. IOBasePCMCIAControllerList = ^(IOBasePCMCIAControllerChoices, 1)
  443. IOBasePCMCIAControllerValues = ^(IOBasePCMCIAControllerChoices, 2)
  444. WaitstateList = ^(WaitstateChoices, 1)
  445. WaitstateValues = ^(WaitstateChoices, 2)
  446. DatasizeList = ^(DatasizeChoices, 1)
  447. DatasizeValues = ^(DatasizeChoices, 2)
  448. DatasizeLabels = ^(DatasizeChoices, 3)
  449.  
  450. IOBasePCMCIADefault = 15
  451. MemWinDefault        = 49
  452. ComPortDefault        = 3
  453. InterruptDefault    = 3
  454.  
  455. [DialogConstantsENG]
  456. Help        = "&Help"
  457. Exit        = "Cancel"
  458. OK          = "OK"
  459. HelpContext = ""
  460. Continue    = "Continue"
  461. Cancel      = "Cancel"
  462. ContextMinimumID    = 6000
  463. ContextContentsID    = 6000
  464. ContextPCMCIASetupID    = 6001
  465. ContextPCMCIAAdvancedID = 6002
  466. ContextMaximumID    = 6020
  467.  
  468. [date]
  469.     Now = {} ? $(!LIBHANDLE) GetSystemDate
  470.  
  471. [AskSourceDlgText]
  472.     DlgText        = "Please enter the full path of the Olicom 16/4 driver "+
  473.              "setup files. Then choose Continue."
  474.  
  475. ;-----------------------------------------------------------------------
  476. ; ADAPTER PARAMETER DIALOG
  477. ; ------------------------
  478. ; This section sets up the adapter parameter dialog. All textstrings
  479. ; presented in this dialog are defined here.
  480. ;
  481. ;-----------------------------------------------------------------------
  482. [OCTK16ParameterDlgENG]
  483. DlgType = "RadioCombination"
  484. DlgTemplate = "OCTK16"
  485. Caption = $(FunctionTitle)
  486. DlgText = "Please select values for the following fields:"
  487. Combo1Label = "&I/O Base Address:"
  488. Combo2Label = "&Receive Buffers:"
  489. Combo3Label = "&Transmit Buffers:"
  490. Combo4Label = "&Max Frame Size:"
  491. Combo5Label = "&Bus Number:"
  492. Label1 = "&Early Token Release:"
  493. Radio1 = "Yes"
  494. Radio2 = "No"
  495. Label2 = "&Full Transmit Status:"
  496. Radio3 = "Yes"
  497. Radio4 = "No"
  498. Edit1Label = "&Network Address:"
  499. Combo1List = $(IOBaseAddrList)
  500. Combo1Out  = $(IOBaseAddrIndex)
  501. Combo2List = $(RcvBufCountList)
  502. Combo2Out  = $(RcvBufCountIndex)
  503. Combo3List = $(XmitBufCountList)
  504. Combo3Out  = $(XmitBufCountIndex)
  505. Combo4List = $(FrameSizeList)
  506. Combo4Out  = $(FrameSizeIndex)
  507. Combo5List = $(BusNoList)
  508. Combo5Out  = $(BusNoIndex)
  509. ComboListItemsIn  = {Combo1List, Combo2List, Combo3List, Combo4List, Combo5List}
  510. ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out, Combo4Out, Combo5Out}
  511. EditTextLim = 17
  512. EditTextIn = $(NetworkAddress)
  513. RadioOptionGreyed = {}
  514. CBOptionsGreyed = {}
  515. NotifyFields = {NO, NO, NO, NO, NO}
  516. HelpContext = $(ContextContentsID)
  517.  
  518. ;-----------------------------------------------------------------------
  519. ; PCMCIA PARAMETER MAIN DIALOG
  520. ; ----------------------------
  521. ; This section sets up the adapter parameter dialog. All textstrings
  522. ; presented in this dialog are defined here.
  523. ;
  524. ;-----------------------------------------------------------------------
  525. [PCMCIAParameterDlgENG]
  526. DlgType = "RadioCombination"
  527. DlgTemplate = "PCMCIA"
  528. Caption = $(FunctionTitle)
  529. DlgText = "Please select values for the following fields:"
  530. Free        = "&Pcmcia..."
  531. Combo1Label = "&I/O Base Address:"
  532. Combo2Label = "&Receive Buffers:"
  533. Combo3Label = "&Transmit Buffers:"
  534. Combo4Label = "&Max Frame Size:"
  535. Combo5Label = "&Bus Number:"
  536. Label1 = "&Early Token Release:"
  537. Radio1 = "Yes"
  538. Radio2 = "No"
  539. Label2 = "&Full Transmit Status:"
  540. Radio3 = "Yes"
  541. Radio4 = "No"
  542. Edit1Label = "&Network Address:"
  543. Combo1List = $(IOBaseAddrList)
  544. Combo1Out  = $(IOBaseAddrIndex)
  545. Combo2List = $(RcvBufCountList)
  546. Combo2Out  = $(RcvBufCountIndex)
  547. Combo3List = $(XmitBufCountList)
  548. Combo3Out  = $(XmitBufCountIndex)
  549. Combo4List = $(FrameSizeList)
  550. Combo4Out  = $(FrameSizeIndex)
  551. Combo5List = $(BusNoList)
  552. Combo5Out  = $(BusNoIndex)
  553. ComboListItemsIn  = {Combo1List, Combo2List, Combo3List, Combo4List, Combo5List}
  554. ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out, Combo4Out, Combo5Out}
  555. EditTextLim = 17
  556. EditTextIn = $(NetworkAddress)
  557. RadioOptionGreyed = {}
  558. CBOptionsGreyed = {}
  559. NotifyFields = {NO, NO, NO, NO, NO}
  560. HelpContext = $(ContextContentsID)
  561.  
  562. ;-----------------------------------------------------------------------
  563. ; PCMCIA COMBO Cards PARAMETER MAIN DIALOG
  564. ; ----------------------------------------
  565. ; This section sets up the adapter parameter dialog. All textstrings
  566. ; presented in this dialog are defined here.
  567. ;
  568. ;-----------------------------------------------------------------------
  569. [COMBOParameterDlgENG]
  570. DlgType = "RadioCombination"
  571. DlgTemplate = "PCMCIA"
  572. Caption = $(FunctionTitle)
  573. DlgText = "Please select values for the following fields:"
  574. Free        = "&Pcmcia..."
  575. Combo1Label = "&I/O Base Address:"
  576. Combo2Label = "&Receive Buffers:"
  577. Combo3Label = "&Transmit Buffers:"
  578. Combo4Label = "&Max Frame Size:"
  579. Combo5Label = "&Bus Number:"
  580. Label1 = "&Early Token Release:"
  581. Radio1 = "Yes"
  582. Radio2 = "No"
  583. Label2 = "&Full Transmit Status:"
  584. Radio3 = "Yes"
  585. Radio4 = "No"
  586. Edit1Label = "&Network Address:"
  587. Combo1List = $(IOBaseAddrList)
  588. Combo1Out  = $(IOBaseAddrIndex)
  589. Combo2List = $(RcvBufCountList)
  590. Combo2Out  = $(RcvBufCountIndex)
  591. Combo3List = $(XmitBufCountList)
  592. Combo3Out  = $(XmitBufCountIndex)
  593. Combo4List = $(FrameSizeList)
  594. Combo4Out  = $(FrameSizeIndex)
  595. Combo5List = $(BusNoList)
  596. Combo5Out  = $(BusNoIndex)
  597. ComboListItemsIn  = {Combo1List, Combo2List, Combo3List, Combo4List, Combo5List}
  598. ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out, Combo4Out, Combo5Out}
  599. EditTextLim = 17
  600. EditTextIn = $(NetworkAddress)
  601. RadioOptionGreyed = {}
  602. CBOptionsGreyed = {}
  603. NotifyFields = {NO, NO, NO, NO, NO}
  604. HelpContext = $(ContextContentsID)
  605.  
  606. ;-----------------------------------------------------------------------
  607. ; MORE PCMCIA PARAMETER DIALOG
  608. ; ----------------------------
  609. ; This section sets up the PCMCIA parameter dialog. All textstrings
  610. ; presented in this dialog are defined here.
  611. ;
  612. ;-----------------------------------------------------------------------
  613.  
  614. [PCMCIAMoreDlgENG]
  615. DlgType = "RadioCombination"
  616. DlgTemplate = "PCMCIAM"
  617. Caption = "Pcmcia Setup"
  618. DlgText = "Please select values for the following fields:"
  619. Free        = "&Advanced..."
  620. Combo1Label = "I/O &Base Address:"
  621. Combo2Label = "&Memory Window:"
  622. Combo3Label = "&Interrupt:"
  623. Combo4Label = "&Ring Speed:"
  624. Combo1List = $(IOBasePCMCIAList)
  625. Combo1Out  = $(IOBasePCMCIAIndex)
  626. Combo2List = $(MemWinList)
  627. Combo2Out  = $(MemWinIndex)
  628. Combo3List = $(InterruptList)
  629. Combo3Out  = $(InterruptIndex)
  630. Combo4List = $(RingSpeedList)
  631. Combo4Out  = $(RingSpeedIndex)
  632. ComboListItemsIn  = {Combo1List, Combo2List, Combo3List, Combo4List}
  633. ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out, Combo4Out}
  634. RadioOptionGreyed = {}
  635. CBOptionsGreyed = {}
  636. NotifyFields = {NO, NO, NO, NO, NO}
  637. HelpContext = $(ContextPCMCIASetupID)
  638.  
  639. ;-----------------------------------------------------------------------
  640. ; MORE COMBO PARAMETER DIALOG
  641. ; ---------------------------
  642. ; This section sets up the PCMCIA parameter dialog. All textstrings
  643. ; presented in this dialog are defined here.
  644. ;
  645. ;-----------------------------------------------------------------------
  646.  
  647. [COMBOMoreDlgENG]
  648. DlgType = "RadioCombination"
  649. DlgTemplate = "COMBOM"
  650. Caption = "Pcmcia Setup"
  651. DlgText = "Please select values for the following fields:"
  652. Free        = "&Advanced..."
  653. Combo1Label = "I/O &Base Address:"
  654. Combo2Label = "&Memory Window:"
  655. Combo3Label = "&Interrupt:"
  656. Combo4Label = "&Ring Speed:"
  657. Combo5Label = "&Com Port:"
  658. Combo1List = $(IOBasePCMCIAList)
  659. Combo1Out  = $(IOBasePCMCIAIndex)
  660. Combo2List = $(MemWinList)
  661. Combo2Out  = $(MemWinIndex)
  662. Combo3List = $(InterruptList)
  663. Combo3Out  = $(InterruptIndex)
  664. Combo4List = $(RingSpeedList)
  665. Combo4Out  = $(RingSpeedIndex)
  666. Combo5List = $(ComPortList)
  667. Combo5Out  = $(ComPortIndex)
  668. ComboListItemsIn  = {Combo1List, Combo2List, Combo3List, Combo4List, Combo5List}
  669. ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out, Combo4Out, Combo5Out}
  670. RadioOptionGreyed = {}
  671. CBOptionsGreyed = {}
  672. NotifyFields = {NO, NO, NO, NO, NO}
  673. HelpContext = $(ContextPCMCIASetupID)
  674.  
  675. ;-----------------------------------------------------------------------
  676. ; PCMCIA ADVANCED SETTINGS DIALOG
  677. ; -------------------------------
  678. ; This section sets up the PCMCIA adavanced settings dialog. All
  679. ; textstrings presented in this dialog are defined here.
  680. ;
  681. ;-----------------------------------------------------------------------
  682.  
  683. [PCMCIAAdvancedDlgENG]
  684. DlgType = "RadioCombination"
  685. DlgTemplate = "PCMCIAADV"
  686. Caption = "Pcmcia Advanced Settings"
  687. DlgText = "Please select values for the following fields:"
  688. Combo1Label = "&Controller I/O Base:"
  689. Combo2Label = "&Additional Waitstates:"
  690. Radio1Label = "&Datasize:"
  691. Radio1Button1 = *($(DatasizeLabels),1)
  692. Radio1Button2 = *($(DatasizeLabels),2)
  693. Combo1List = $(IOBasePCMCIAControllerList)
  694. Combo1Out  = $(IOBasePCMCIAControllerIndex)
  695. Combo2List = $(WaitstateList)
  696. Combo2Out  = $(WaitstateIndex)
  697. ComboListItemsIn  = {Combo1List, Combo2List}
  698. ComboListItemsOut = {Combo1Out, Combo2Out}
  699. RadioIn = { $(DatasizeIndex) }
  700. RadioOptionGreyed = {}
  701. CBOptionsGreyed = {}
  702. NotifyFields = {NO, NO, NO, NO, NO}
  703. HelpContext = $(ContextPCMCIAAdvancedID)
  704.  
  705. ;---------------------------------------------------------------------------
  706. ; 1. Identify
  707. ;
  708. ; DESCRIPTION:   To verify that this INF deals with the same type of options
  709. ;                as we are choosing currently.
  710. ;
  711. ; INPUT:         None
  712. ;
  713. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL
  714. ;                $($R1): Option Type (COMPUTER ...)
  715. ;                $($R2): Diskette description
  716. ;---------------------------------------------------------------------------
  717.  
  718. [Identify]
  719.     read-syms Identification
  720.     set Status     = STATUS_SUCCESSFUL
  721.     set Identifier = $(OptionType)
  722.     set Media      = #("Source Media Descriptions", 1, 1)
  723.     Return $(Status) $(Identifier) $(Media)
  724.  
  725. ;------------------------------------------------------------------------
  726. ; 2. ReturnOptions:
  727. ;
  728. ; DESCRIPTION:   To return the option list supported by this INF and the
  729. ;                localised text list representing the options.
  730. ;
  731. ;
  732. ; INPUT:         $($0):  Language used. ( ENG | FRN | ... )
  733. ;
  734. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL |
  735. ;                                STATUS_NOLANGUAGE
  736. ;                                STATUS_FAILED
  737. ;                                STATUS_NOTSUPPORTED
  738. ;
  739. ;                $($R1): Option List
  740. ;                $($R2): Option Text List
  741. ;------------------------------------------------------------------------
  742.  
  743. [ReturnOptions]
  744.     set Status         = STATUS_FAILED
  745.     set OptionList     = {}
  746.     set OptionTextList = {}
  747.     set LanguageList = ^(LanguagesSupported, 1)
  748.     Ifcontains(i) $($0) in $(LanguageList)
  749.     ifstr(i) $($1) == ""
  750.        goto returnoptions
  751.     endif
  752.     set PlatformList = ^(PlatformsSupported, 1)
  753.     Ifcontains(i) $($1) in $(PlatformList)
  754.        goto returnoptions
  755.     else
  756.        set Status = STATUS_NOTSUPPORTED
  757.        goto finish_ReturnOptions
  758.     endif
  759.     else
  760.     set Status = STATUS_NOLANGUAGE
  761.     goto finish_ReturnOptions
  762.     endif
  763. returnoptions = +
  764.     set OptionList     = ^(Options, 1)
  765.     set OptionTextList = ^(OptionsText$($0), 1)
  766.     set Status         = STATUS_SUCCESSFUL
  767. finish_ReturnOptions = +
  768.     Return $(Status) $(OptionList) $(OptionTextList)
  769.  
  770. ;------------------------------------------------------------------------
  771. ;
  772. ; InstallOption:
  773. ;
  774. ;      This section is shelled to by main installation processing
  775. ;      or by NCPASHEL.INF during reconfig, removal, update, etc.
  776. ;
  777. ;
  778. ; FUNCTION:  To copy files representing Options
  779. ;            To configure the installed option
  780. ;            To update the registry for the installed option
  781. ;
  782. ; INPUT:     $($0):  Language to use
  783. ;            $($1):  OptionID to install
  784. ;            $($2):  SourceDirectory
  785. ;            $($3):  AddCopy  (YES | NO)
  786. ;            $($4):  DoCopy   (YES | NO)
  787. ;            $($5):  DoConfig (YES | NO)
  788. ;
  789. ; OUTPUT:    $($R0): STATUS: STATUS_SUCCESSFUL |
  790. ;                            STATUS_NOLANGUAGE |
  791. ;                            STATUS_USERCANCEL |
  792. ;                            STATUS_FAILED
  793. ;
  794. ;------------------------------------------------------------------------
  795.  
  796. [InstallOption]
  797.     StartWait
  798.     set SrcDir   = ""
  799.     set Option   = $($1)
  800.     set SrcDir   = $($2)
  801.     set AddCopy  = $($3)
  802.     set DoCopy   = $($4)
  803.     set DoConfig = $($5)
  804.     ifstr(i) $(SrcDir) == ""
  805.        Set SrcDir = "A:\"
  806.     Endif
  807.     set LanguageList = ^(LanguagesSupported, 1)
  808.     Ifcontains(i) $($0) NOT-IN $(LanguageList)
  809.     Return STATUS_NOLANGUAGE
  810.     endif
  811.     Debug-Output "STF_CWDDIR is: "$(!STF_CWDDIR)
  812.     Debug-Output "STF_LANGUAGE is: "$(!STF_LANGUAGE)
  813.     set-subst LF = "\n"
  814.     read-syms GeneralConstants
  815.     read-syms FileConstants
  816.     read-syms DialogConstants$(!STF_LANGUAGE)
  817.     ifstr(i) $(!NTN_Origination) == "NCPA"
  818.     set Continue = "OK"
  819.     endif
  820.     read-syms FileConstants$(!STF_LANGUAGE)
  821.     detect date
  822.     set-title  $(FunctionTitle)
  823.     set to   = Begin
  824.     set from = Begin
  825.     set CommonStatus = STATUS_SUCCESSFUL
  826.     SetHelpFile $(HelpfileName) $(ContextMinimumID) $(ContextMaximumID)
  827.     EndWait
  828. Begin = +
  829.     Ifstr(i) $(!NTN_InstallMode) == deinstall
  830.     set StartLabel = removeadapter
  831.     else-Ifstr(i) $(!NTN_InstallMode) == Update
  832.     set StartLabel = UpgradeSoftware
  833.     else-Ifstr(i) $(!NTN_InstallMode) == bind
  834.     set StartLabel = bindingadapter
  835.     else-Ifstr(i) $(!NTN_InstallMode) == configure
  836.     set StartLabel = configureadapter
  837.     Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  838.         Debug-Output "Cannot configure the driver software."
  839.         Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
  840.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  841.         Debug-Output "ShellCode error: cannot get an error string."
  842.         goto ShellCodeError
  843.         endif
  844.         set Error = $($R0)
  845.         set from = end
  846.         set to = end
  847.         goto nonfatalinfo
  848.     endif
  849.     else
  850.     set StartLabel = installadapter
  851.     set OEM_ABANDON_OPTIONS = {}
  852.     set OEM_ABANDON_SOFTWARE = FALSE
  853.     set OEM_ABANDON_ON = TRUE
  854.     endif
  855.     set IOBaseAddrIndex = *($(IOBaseAddrList), 1)
  856.     set BusNoIndex = *($(BusNoList), 1)
  857.     set RcvBufCountIndex = *($(RcvBufCountList), 27)
  858.     set XmitBufCountIndex = *($(XmitBufCountList), 25)
  859.     set FrameSizeIndex = *($(FrameSizeList), 3)
  860.     set NetworkAddress = *($(EditTextOut), 1)
  861.     set RadioIn = { 1, 3 }
  862.     set EarlyRelease = "Yes"
  863.     set FrameStatus = "Yes"
  864.     set IOBasePCMCIAIndex = *($(IOBasePCMCIAList), $(IOBasePCMCIADefault))
  865.     set ComPortIndex = *($(ComPortList), $(ComPortDefault))
  866.     set InterruptIndex = *($(InterruptList), $(InterruptDefault))
  867.     set MemWinIndex = *($(MemWinList), $(MemWinDefault))
  868.     set IOBasePCMCIAControllerIndex = *($(IOBasePCMCIAControllerList), 1)
  869.     set WaitstateIndex = *($(WaitstateList), 1)
  870.     set DatasizeIndex = 1
  871.     set RingSpeedIndex = *($(RingSpeedList), 1)
  872.     Shell "" DebugConfiguration "After parameter querying"
  873.     Shell $(UtilityInf), GetBusTypeNum
  874.     set BusTypeNum = $($R1)
  875.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  876.     Debug-Output "ShellCode error."
  877.     goto ShellCodeError
  878.     endif
  879.     set RcvBufCountValue = *($(RcvBufCountList), ~($(RcvBufCountValues),6))
  880.     set XmitBufCountValue = *($(XmitBufCountList), ~($(XmitBufCountValues),8))
  881.     set FrameSizeValue = *($(FrameSizeList), ~($(FrameSizeValues),4096))
  882.     Set from = $(fatal)
  883.     Set to = $(fatal)
  884.     Goto $(StartLabel)
  885.  
  886. ;-----------------------------------------------
  887. ; Installation Section
  888. ;-----------------------------------------------
  889. ;
  890. ;   Get the current values of all the parameters
  891. ;
  892. installadapter = +
  893.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  894.     Ifstr $(KeyProduct) != $(KeyNull)
  895.     CloseRegKey $(KeyProduct)
  896.     ifstr(i) !(NTN_RegBase) == $(ProductKeyName)
  897.        Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle),+
  898.            $(ProductVersion)
  899.        ifint $($ShellCode) != $(!SHELL_CODE_OK)
  900.            Debug-Output "ShellCode error: cannot get an error string."
  901.            goto ShellCodeError
  902.        endif
  903.        goto end
  904.     else
  905.        Shell $(UtilityInf), CardExistedDlg
  906.        ifint $($ShellCode) != $(!SHELL_CODE_OK)
  907.            Debug-Output "ShellCode error: cannot get an error string."
  908.            goto ShellCodeError
  909.        endif
  910.        ifstr(i) $($R1) != "OK"
  911.            goto end
  912.        endif
  913.        set OldVersionExisted = $(TRUE)
  914.     endif
  915.     endif
  916.  
  917.     Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) NO
  918.  
  919.     Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  920.     Goto ShellCodeError
  921.     Else-Ifstr(i) $($R0) == STATUS_FAILED
  922.     Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  923.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  924.         goto ShellCodeError
  925.     endif
  926.     set Error = $($R0)
  927.     Goto fatal
  928.     Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  929.     Goto successful
  930.     Endif
  931.  
  932.     Set SrcDir = $($R1)
  933.  
  934.     install "Install-Dll"
  935.  
  936.     Goto adapteroptions
  937.  
  938. ;-----------------------------------------------
  939. ; Configuration Section
  940. ;-----------------------------------------------
  941. ;
  942. ;   Get the current values of all the parameters
  943. ;
  944. configureadapter = +
  945.     Ifstr(i) $(KeyProduct) == $(KeyNull)
  946.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
  947.     Ifstr $(KeyProduct) == $(KeyNull)
  948.         set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  949.         Debug-Output "Cannot find component product key"
  950.         goto fatalregistry
  951.     Endif
  952.     Endif
  953.     Debug-Output "INF: Shelling to FindService"
  954.     Shell $(UtilityInf) FindService, $(KeyProduct)
  955.     Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  956.     Debug-Output "INF: FindService shell failure"
  957.     Goto ShellCodeError
  958.     Endif
  959.     Ifstr(i) $($R0) != NO_ERROR
  960.     Debug-Output "INF: FindService Shell error: "$($R0)
  961.     Goto fatalregistry
  962.     endif
  963.     Set KeyParameters = $($R2)
  964.     CloseRegKey $($R1)
  965.     Ifstr $(KeyParameters) == $(KeyNull)
  966.     set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  967.     Debug-Output "Cannot find component service"
  968.     goto fatalregistry
  969.     endif
  970.     set OldVersionExisted = $(TRUE)
  971.     set ValueName = ""
  972.     set ValueData = ""
  973.     set ValueStr  = ""
  974.     set ValueList = {}
  975.     EnumRegValue $(KeyParameters) ValueList
  976.     ForListDo $(ValueList)
  977.     set ValueItem = $($)
  978.     set ValueName = *($(ValueItem),1)
  979.     set ValueData = *($(ValueItem),4)
  980.     ifstr(i) $(ValueName) == "RecBufCount"
  981.         set RcvBufCountValue = $(ValueData)
  982.     else-ifstr(i) $(ValueName) == "IoBase"
  983.         set IOBaseAddrValue = $(ValueData)
  984.     else-ifstr(i) $(ValueName) == "TransmitBufferCount"
  985.         set XmitBufCountValue = $(ValueData)
  986.     else-ifstr(i) $(ValueName) == "TransmitBufferSize"
  987.         set FrameSizeValue = $(ValueData)
  988.     else-ifstr(i) $(ValueName) == "BusNumber"
  989.         set BusNoValue = $(ValueData)
  990.     else-ifstr(i) $(ValueName) == "EarlyRelease"
  991.         set EarlyRelease = $(ValueData)
  992.     else-ifstr(i) $(ValueName) == "FrameStatus"
  993.         set FrameStatus = $(ValueData)
  994.     else-Ifstr(i) $(ValueName) == "NetworkAddress"
  995.         set NetworkAddress = $(ValueData)
  996.     else-ifstr(i) $(ValueName) == "IoBaseAddress"
  997.         set IOBasePCMCIAValue = $(ValueData)
  998.     else-ifstr(i) $(ValueName) == "PCCARDAttributeMemoryAddress"
  999.         set MemWinValue = $(ValueData)
  1000.     else-ifstr(i) $(ValueName) == "InterruptNumber"
  1001.         set InterruptValue = $(ValueData)
  1002.     else-ifstr(i) $(ValueName) == "ComPortBase"
  1003.         set ComPortValue = $(ValueData)
  1004.     else-ifstr(i) $(ValueName) == "PcmciaCtrlBase"
  1005.         set IOBasePCMCIAControllerValue = $(ValueData)
  1006.     else-ifstr(i) $(ValueName) == "WaitStates"
  1007.             set WaitstateValue = $(ValueData)
  1008.     else-ifstr(i) $(ValueName) == "DataSize"
  1009.         set DatasizeValue = $(ValueData)
  1010.     else-ifstr(i) $(ValueName) == "RingSpeed"
  1011.         set RingSpeedValue = $(ValueData)
  1012.     endif
  1013.     EndForListDo
  1014.     ;
  1015.     ; Combo-lists and radio-buttons use a special list of parameter-names
  1016.     ; when dialogs are executed. The following section converts the actual
  1017.     ; values into the corresponding names (indexes). If a value is undefined,
  1018.     ; the first entry in the index-list is used.
  1019.     ;
  1020.     set RcvBufCountIndex = *($(RcvBufCountList), ~($(RcvBufCountValues),$(RcvBufCountValue)))
  1021.     ifstr(i) $(RcvBufCountIndex) == ""
  1022.     set RcvBufCountIndex = *($(RcvBufCountList), 27)
  1023.     endif
  1024.     set XmitBufCountIndex = *($(XmitBufCountList), ~($(XmitBufCountValues),$(XmitBufCountValue)))
  1025.     ifstr(i) $(XmitBufCountIndex) == ""
  1026.     set XmitBufCountIndex = *($(XmitBufCountList), 25)
  1027.     endif
  1028.     set FrameSizeIndex = *($(FrameSizeList), ~($(FrameSizeValues),$(FrameSizeValue)))
  1029.     ifstr(i) $(FrameSizeIndex) == ""
  1030.     set FrameSizeIndex = *($(FrameSizeList), 3)
  1031.     endif
  1032.     set IOBaseAddrIndex = *($(IOBaseAddrList), ~($(IOBaseAddrValues),$(IOBaseAddrValue)))
  1033.     ifstr(i) $(IOBaseAddrIndex) == ""
  1034.     set IOBaseAddrIndex = *($(IOBaseAddrList), 1)
  1035.     endif
  1036.     set BusNoIndex = *($(BusNoList), ~($(BusNoValues),$(BusNoValue)))
  1037.     ifstr(i) $(BusNoIndex) == ""
  1038.     set BusNoIndex = *($(BusNoList), 1)
  1039.     endif
  1040.     Ifstr(i) $(EarlyRelease) == "Yes"
  1041.     set Rad1 = 1
  1042.     else
  1043.     set Rad1 = 2
  1044.     endif
  1045.     Ifstr(i) $(FrameStatus) == "Yes"
  1046.     set Rad2 = 3
  1047.     else
  1048.     set Rad2 = 4
  1049.     endif
  1050.     set RadioIn = {$(Rad1), $(Rad2) }
  1051.     set IOBasePCMCIAIndex = *($(IOBasePCMCIAList), ~($(IOBasePCMCIAValues),$(IOBasePCMCIAValue)))
  1052.     ifstr(i) $(IOBasePCMCIAIndex) == ""
  1053.     set IOBasePCMCIAIndex = *($(IOBasePCMCIAList), 1)
  1054.     endif
  1055.     set MemWinIndex = *($(MemWinList), ~($(MemWinValues),$(MemWinValue)))
  1056.     ifstr(i) $(MemWinIndex) == ""
  1057.     set MemWinIndex = *($(MemWinList), 49)
  1058.     endif
  1059.     set InterruptIndex = *($(InterruptList), ~($(InterruptValues),$(InterruptValue)))
  1060.     ifstr(i) $(InterruptIndex) == ""
  1061.     set InterruptIndex = *($(InterruptList), 3)
  1062.     endif
  1063.     set ComPortIndex = *($(ComPortList), ~($(ComPortValues),$(ComPortValue)))
  1064.     ifstr(i) $(ComPortIndex) == ""
  1065.     set ComPortIndex = *($(ComPortList), 6)
  1066.     endif
  1067.     set IOBasePCMCIAControllerIndex = *($(IOBasePCMCIAControllerList), ~($(IOBasePCMCIAControllerValues),$(IOBasePCMCIAControllerValue)))
  1068.     ifstr(i) $(IOBasePCMCIAControllerIndex) == ""
  1069.     set IOBasePCMCIAControllerIndex = *($(IOBasePCMCIAControllerList), 1)
  1070.     endif
  1071.     set WaitstateIndex = *($(WaitstateList), ~($(WaitstateValues),$(WaitstateValue)))
  1072.     ifstr(i) $(WaitstateIndex) == ""
  1073.     set WaitstateIndex = *($(WaitstateList), 2)
  1074.     endif
  1075.     set DatasizeIndex = *($(DatasizeList), ~($(DatasizeValues),$(DatasizeValue)))
  1076.     ifstr(i) $(DatasizeIndex) == ""
  1077.     set DatasizeIndex = *($(DatasizeList), 1)
  1078.     endif
  1079.     ;
  1080.     ; This section runs the dialogs. From the main dialog (adapter parameter
  1081.     ; setup) it is possible to enter the PCMCIA dialog if requested. When
  1082.     ; exiting the PCMCIA dialog the user is returned to the main dialog.
  1083.     ;
  1084. adapteroptions = +
  1085.     Set from = adapteroptions
  1086.     ifstr(i) $(!STF_GUI_UNATTENDED) == "YES"
  1087.     ;
  1088.     ; Default parameters for unattended installation
  1089.     ;
  1090.     goto unattended
  1091.     endif
  1092.     set OldNetAddress = $(NetworkAddress)
  1093.     ;
  1094.     ; Load DLL containing dialogs and verification routines
  1095.     ;
  1096.     LoadLibrary "Olicom Driver Disk" $(DialogDllName) DialogHandle
  1097. adapteroptions1 = +
  1098.     ;
  1099.     ; Read main dialog setup and show dialog
  1100.     ;
  1101.     read-syms $(Option)ParameterDlg$(!STF_LANGUAGE)
  1102.     ui start "InputDlg"  $(DialogHandle)
  1103.     ui pop 1
  1104.     ;
  1105.     ; Save new settings because this dialog might be called again.
  1106.     ; If CANCEL was pressed these values will not be used
  1107.     ;
  1108.     set IOBaseAddrIndex = $(Combo1Out)
  1109.     set RcvBufCountIndex = $(Combo2Out)
  1110.     set XmitBufCountIndex = $(Combo3Out)
  1111.     set FrameSizeIndex = $(Combo4Out)
  1112.     set BusNoIndex = $(Combo5Out)
  1113.     IfContains "1" IN $(RadioOut)
  1114.         set EarlyRelease = "Yes"
  1115.     else-IfContains "2" IN $(RadioOut)
  1116.         set EarlyRelease = "No"
  1117.     endif
  1118.     IfContains "3" IN $(RadioOut)
  1119.         set FrameStatus = "Yes"
  1120.     else-IfContains "4" IN $(RadioOut)
  1121.         set FrameStatus = "No"
  1122.     endif
  1123.     set NetworkAddress = *($(EditTextOut),1)
  1124.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  1125.     ;
  1126.     ; parameters have already been stored at this stage
  1127.     ;
  1128.     goto nextstep
  1129.     else-ifstr(i) $(DLGEVENT) == "EXIT"
  1130.     set CommonStatus = STATUS_USERCANCEL
  1131.     Debug-Output "Action: exit. Bye."
  1132.     FreeLibrary $(DialogHandle)
  1133.     goto end
  1134.     else-ifstr(i) $(DLGEVENT) == "FREEBUTTON1"
  1135. adapteroptions2 = +
  1136.         ;
  1137.     ; Read PCMCIA dialog setup and show dialog
  1138.     ;
  1139.         ifstr(i) $(Option) == "PCMCIA"
  1140.             read-syms PCMCIAMoreDlg$(!STF_LANGUAGE)
  1141.         else
  1142.             read-syms COMBOMoreDlg$(!STF_LANGUAGE)
  1143.         Endif
  1144.         ui start "InputDlg"  $(DialogHandle)
  1145.         ui pop 1
  1146.     ;
  1147.     ; Save new settings because this dialog might be called again.
  1148.     ; If CANCEL was pressed these values will not be used
  1149.     ;
  1150.         set IOBasePCMCIAIndex = $(Combo1Out)
  1151.     set MemWinIndex = $(Combo2Out)
  1152.     set InterruptIndex = $(Combo3Out)
  1153.     set RingSpeedIndex = $(Combo4Out)
  1154.     set ComPortIndex = $(Combo5Out)
  1155.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  1156.         ;
  1157.         ; parameters have already been stored at this stage
  1158.         ;
  1159.         goto adapteroptions1
  1160.     else-ifstr(i) $(DLGEVENT) == "FREEBUTTON1"
  1161.         ;
  1162.         ; Read PCMCIA Advanced dialog setup and show dialog
  1163.         ;
  1164.         read-syms PCMCIAAdvancedDlg$(!STF_LANGUAGE)
  1165.         ui start "InputDlg"  $(DialogHandle)
  1166.         ui pop 1
  1167.         ;
  1168.         ; Save new settings because this dialog might be called again.
  1169.         ; If CANCEL was pressed these values will not be used
  1170.         ;
  1171.         set IOBasePCMCIAControllerIndex = $(Combo1Out)
  1172.         set WaitstateIndex = $(Combo2Out)
  1173.             set DatasizeIndex = *($(RadioOut),1)
  1174.         goto adapteroptions2
  1175.     else
  1176.         Debug-Output "Action: unknown: "$(DLGEVENT)
  1177.         FreeLibrary $(DialogHandle)
  1178.         goto end
  1179.     endif
  1180.     else
  1181.     Debug-Output "Action: unknown: "$(DLGEVENT)
  1182.     FreeLibrary $(DialogHandle)
  1183.     goto end
  1184.     endif
  1185.  
  1186. nextstep =+
  1187.     ifstr $(NetworkAddress) != ""
  1188.     ;
  1189.     ; If network address has been entered then verify that it is a
  1190.     ; valid address (not a multicast or broadcast address)
  1191.     ;
  1192.     set FLibraryErrCtl = 1
  1193.     LibraryProcedure DlgResult $(DialogHandle) VerifyAddress $(NetworkAddress)
  1194.     set FLibraryErrCtl = 0
  1195.     ifstr $(DlgResult) != "STATUS_SUCCESS"
  1196.         FreeLibrary $(DialogHandle)
  1197.         set Error = $(DlgResult)
  1198.         goto nonfatal
  1199.     endif
  1200.     endif
  1201.     FreeLibrary $(DialogHandle)
  1202. unattended =+
  1203.     ifint $(OldVersionExisted) == $(TRUE)
  1204.     ifstr(i) $(!NTN_InstallMode) == configure
  1205.         goto writeparameters
  1206.     endif
  1207.     endif
  1208.     StartWait
  1209.     Ifint $(OldVersionExisted) != $(FALSE)
  1210.     Goto installhardware
  1211.     Endif
  1212.     ifstr(i) $(!NTN_InstallMode) == "install"
  1213.        Ifstr(i) $(DoCopy) == "YES"
  1214.       Ifstr(i) $(SrcDir) == ""
  1215.          read-syms AskSourceDlgText
  1216.          Shell $(subroutineinf) DoAskSourceEx $(SrcDir) $(DlgText)
  1217.          Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1218.         Goto ShellCodeError
  1219.          Else-Ifstr(i) $($R0) == STATUS_FAILED
  1220.          Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  1221.          ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1222.              goto ShellCodeError
  1223.          endif
  1224.          set Error = $($R0)
  1225.          Goto fatal
  1226.          Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  1227.          Goto successful
  1228.          Endif
  1229.          Set SrcDir = $($R1)
  1230.       Endif
  1231.        Endif
  1232.        install "Install-Option"
  1233.        ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  1234.       Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
  1235.       ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1236.           goto ShellCodeError
  1237.       endif
  1238.       set Error = $($R0)
  1239.       goto fatal
  1240.        endif
  1241.     endif
  1242.     Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
  1243.     $(ProductSoftwareName), +
  1244.     $(ProductSoftwareName), +
  1245.     $(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), +
  1246.     $(ProductSoftwareImagePath), "kernel", "NDIS", {}, "",+
  1247.     $(NetEventDLL), ""
  1248.     Set OEM_ABANDON_SOFTWARE = TRUE
  1249.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1250.     Debug-Output "ShellCode error"
  1251.     goto ShellCodeError
  1252.     endif
  1253.     set RegistryErrorIndex = $($R0)
  1254.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1255.     EndWait
  1256.     Debug-Output "OEMNADUB.INF: Registry error: add software components"
  1257.     CloseRegKey $($R1)
  1258.     CloseRegKey $($R2)
  1259.     CloseRegKey $($R3)
  1260.     CloseRegKey $($R4)
  1261.     CloseRegKey $($R5)
  1262.     goto fatalregistry
  1263.     endif
  1264.     set SoftProductKey  = $($R1)
  1265.     Set SoftNetRuleKey = $($R2)
  1266.     Set SoftServiceKey  = $($R3)
  1267.     Set SoftParameterKey        = $($R4)
  1268.     Set SoftLinkageKey  = $($R5)
  1269.     set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
  1270.                {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
  1271.                {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
  1272.                {Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)},+
  1273.                {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)},+
  1274.                {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)},+
  1275.                {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  1276.     Shell  $(UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList)
  1277.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1278.     Debug-Output "ShellCode error."
  1279.     goto ShellCodeError
  1280.     endif
  1281.     set RegistryErrorIndex = $($R0)
  1282.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1283.     EndWait
  1284.     Debug-Output "Registry error: add value list."
  1285.     CloseRegKey $(SoftProductKey)
  1286.     CloseRegKey $(SoftNetRuleKey)
  1287.     CloseRegKey $(SoftServiceKey)
  1288.     CloseRegKey $(SoftParameterKey)
  1289.     CloseRegKey $(SoftLinkageKey)
  1290.     goto fatalregistry
  1291.     endif
  1292.     set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareType)},+
  1293.             {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareUse)}, +
  1294.             {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareBindForm)}, +
  1295.             {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)}, +
  1296.             {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareBindable)}, +
  1297.             {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  1298.     Shell  $(UtilityInf), AddValueList, $(SoftNetRuleKey), $(NewValueList)
  1299.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1300.     Debug-Output "ShellCode error."
  1301.     goto ShellCodeError
  1302.     endif
  1303.     set RegistryErrorIndex = $($R0)
  1304.     CloseRegKey $(SoftProductKey)
  1305.     CloseRegKey $(SoftNetRuleKey)
  1306.     CloseRegKey $(SoftServiceKey)
  1307.     CloseRegKey $(SoftParameterKey)
  1308.     CloseRegKey $(SoftLinkageKey)
  1309.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1310.     EndWait
  1311.     Debug-Output "Registry error: add value list."
  1312.     goto fatalregistry
  1313.     endif
  1314. ;
  1315. ;   Insert hardware component in registry
  1316. ;
  1317. installhardware =+
  1318.     Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName)
  1319.     ifint $($R4) != -1
  1320.     Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
  1321.     endif
  1322.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1323.     Debug-Output "Cannot add hardware component"
  1324.     goto ShellCodeError
  1325.     endif
  1326.     set RegistryErrorIndex = $($R0)
  1327.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1328.     EndWait
  1329.     Debug-Output "Registry error: add hardware component"
  1330.     CloseRegKey $($R1)
  1331.     CloseRegKey $($R2)
  1332.     CloseRegKey $($R3)
  1333.     goto fatalregistry
  1334.     endif
  1335.     set KeyProduct = $($R1)
  1336.     set KeyAdapterRules = $($R2)
  1337.     set KeyParameters = $($R3)
  1338.     set AdapterNumber = $($R4)
  1339.     set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
  1340.                {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardware$(Option)Title)},+
  1341.                {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardware$(Option)Description)},+
  1342.                {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+
  1343.                {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
  1344.                {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  1345.     Shell  $(UtilityInf), AddValueList, $(KeyProduct), $(NewValueList)
  1346.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1347.     Debug-Output "ShellCode error"
  1348.     goto ShellCodeError
  1349.     endif
  1350.     CloseRegKey $(KeyProduct)
  1351.     Set KeyProduct = ""
  1352.     set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
  1353.     set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
  1354.     set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardwareType)},+
  1355.             {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
  1356.             {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardwareClass)}, +
  1357.             {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  1358.     Shell  $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList)
  1359.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1360.     Debug-Output "ShellCode error."
  1361.     goto ShellCodeError
  1362.     endif
  1363.     CloseRegKey $(KeyAdapterRules)
  1364.     set RegistryErrorIndex = $($R0)
  1365.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1366.     EndWait
  1367.     Debug-Output "Registry error: add value list."
  1368.     CloseRegKey $(KeyParameters)
  1369.     goto fatalregistry
  1370.     endif
  1371. ;
  1372. ; Write Adapter Parameters to registry
  1373. ;
  1374. writeparameters = +
  1375.     Shell $(UtilityInf), GetBusTypeNum
  1376.     set BusTypeNum = $($R1)
  1377.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1378.     Debug-Output "ShellCode error."
  1379.     goto ShellCodeError
  1380.     endif
  1381.     Ifstr(i) $(KeyParameters) == $(KeyNull)
  1382.     Debug-Output "*** KeyParameters is NULL at writeparameters"
  1383.     Endif
  1384.     ;
  1385.     ; Convert selections from combo-lists and radio-buttons into actual
  1386.     ; parameter values
  1387.     ;
  1388.     set IOBaseAddrValue = *($(IOBaseAddrValues), ~($(IOBaseAddrList),$(IOBaseAddrIndex)))
  1389.     set BusNoValue = *($(BusNoValues), ~($(BusNoList),$(BusNoIndex)))
  1390.     set RcvBufCountValue = *($(RcvBufCountValues), ~($(RcvBufCountList),$(RcvBufCountIndex)))
  1391.     set XmitBufCountValue = *($(XmitBufCountValues), ~($(XmitBufCountList),$(XmitBufCountIndex)))
  1392.     set FrameSizeValue = *($(FrameSizeValues), ~($(FrameSizeList),$(FrameSizeIndex)))
  1393.     set IOBasePCMCIAValue = *($(IOBasePCMCIAValues), ~($(IOBasePCMCIAList),$(IOBasePCMCIAIndex)))
  1394.     set MemWinValue = *($(MemWinValues), ~($(MemWinList),$(MemWinIndex)))
  1395.     set InterruptValue = *($(InterruptValues), ~($(InterruptList),$(InterruptIndex)))
  1396.     set RingSpeedValue = *($(RingSpeedValues), ~($(RingSpeedList),$(RingSpeedIndex)))
  1397.     set ComPortValue = *($(ComPortValues), ~($(ComPortList),$(ComPortIndex)))
  1398.     set IOBasePCMCIAControllerValue = *($(IOBasePCMCIAControllerValues), ~($(IOBasePCMCIAControllerList),$(IOBasePCMCIAControllerIndex)))
  1399.     set WaitstateValue = *($(WaitstateValues), ~($(WaitstateList),$(WaitstateIndex)))
  1400.     set DatasizeValue = *($(DatasizeValues), ~($(DatasizeList),$(DatasizeIndex)))
  1401.  
  1402.     ifstr(i) $(Option) == "COMBO"
  1403.        set BusTypeNum = 1
  1404.     Endif
  1405.  
  1406.     ifstr(i) $(Option) == "PCMCIA"
  1407.        set BusTypeNum = 1
  1408.     Endif
  1409.  
  1410.     ifstr(i) $(Option) == "COMBO"
  1411.         ;
  1412.         ; If we're installing a ComboCard, update settings for Serial\parameters\serialoctk16 as well
  1413.         ; SERIALCOMM will be created automatically by serial.sys
  1414.         ;
  1415.         ifint $(ComPortValue) != 0
  1416.             OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services\Serial\Parameters\SerialOctk16"$(AdapterNumber) $(MAXIMUM_ALLOWED) SerialHandle
  1417.             Ifstr $(SerialHandle) == $(KeyNull)
  1418.                 OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services\Serial\Parameters" $(MAXIMUM_ALLOWED) SerialKey
  1419.                 CreateRegKey $(SerialKey) {"SerialOctk16"$(AdapterNumber),0,GenericClass} "" $(MAXIMUM_ALLOWED) "" SerialHandle
  1420.                 CloseRegKey $(SerialKey)
  1421.             endif
  1422.             ifint $(ComPortValue) != 24
  1423.                 set NewValueList = {{DosDevices,       $(NoTitle),$(!REG_VT_SZ),      $(ComPortIndex)},+
  1424.                     {ForceFifoEnable,  $(NoTitle),$(!REG_VT_DWORD),   0},+
  1425.                     {ForceShare,       $(NoTitle),$(!REG_VT_DWORD),   1},+
  1426.                     {Interrupt,        $(NoTitle),$(!REG_VT_DWORD),   $(InterruptValue)},+
  1427.                     {PortAddress,      $(NoTitle),$(!REG_VT_DWORD),   $(ComPortValue)}}
  1428.             Else
  1429.                 set-add ComportBaseAddress = $(ComPortValue), $(IOBasePCMCIAValue)
  1430.                 set NewValueList = {{DosDevices,       $(NoTitle),$(!REG_VT_SZ),      $(ComPortIndex)},+
  1431.                     {ForceFifoEnable,  $(NoTitle),$(!REG_VT_DWORD),   0},+
  1432.                     {ForceShare,       $(NoTitle),$(!REG_VT_DWORD),   1},+
  1433.                     {Interrupt,        $(NoTitle),$(!REG_VT_DWORD),   $(InterruptValue)},+
  1434.                     {PortAddress,      $(NoTitle),$(!REG_VT_DWORD),   $(ComportBaseAddress)}}
  1435.             Endif
  1436.             Shell  $(UtilityInf), AddValueList, $(SerialHandle), $(NewValueList)
  1437.             CloseRegKey $(SerialHandle)
  1438.             ;
  1439.             ; Update settings comm port in SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports section
  1440.             ;
  1441.             OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports" $(MAXIMUM_ALLOWED) SerialHandle
  1442.             Ifstr $(SerialHandle) == $(KeyNull)
  1443.                 OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows NT\CurrentVersion" $(MAXIMUM_ALLOWED) SerialKey
  1444.                 CreateRegKey $(SerialKey) {"Ports",0,GenericClass} "" $(MAXIMUM_ALLOWED) "" SerialHandle
  1445.                 CloseRegKey $(SerialKey)
  1446.             endif
  1447.             SetRegValue $(SerialHandle) {$(ComPortIndex)":",$(NoTitle),$(!REG_VT_SZ), "9600,n,8,1"}
  1448.             CloseRegKey $(SerialHandle)
  1449.         Else
  1450.             ; 
  1451.             ; Be nice and delete the COM stuff if user really wants so
  1452.             ; SERIALCOMM will be deleted automatically
  1453.             ; 
  1454.             OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services\Serial\Parameters" $(MAXIMUM_ALLOWED) SerialHandle
  1455.             DeleteRegTree $(SerialHandle) "SerialOctk16"$(AdapterNumber)
  1456.             CloseRegKey $(SerialHandle)
  1457.         Endif
  1458.     Endif
  1459.     ;
  1460.     ; Set up parameter list for AddValueList routine
  1461.     ;
  1462.     Set NewValueList = {{IoBase,$(NoTitle),$(!REG_VT_DWORD),$(IOBaseAddrValue)},+
  1463.             {MediaType,$(NoTitle),$(!REG_VT_DWORD),2},+
  1464.             {BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
  1465.             {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNoValue)},+
  1466.             {RecBufCount,$(NoTitle),$(!REG_VT_DWORD),$(RcvBufCountValue)},+
  1467.             {TransmitBufferCount,$(NoTitle),$(!REG_VT_DWORD),$(XmitBufCountValue)},+
  1468.             {TransmitBufferSize,$(NoTitle),$(!REG_VT_DWORD),$(FrameSizeValue)},+
  1469.             {EarlyRelease,$(NoTitle),$(!REG_VT_SZ),$(EarlyRelease)},+
  1470.             {FrameStatus,$(NoTitle),$(!REG_VT_SZ),$(FrameStatus)},+
  1471.             {IoBaseAddress,$(NoTitle),$(!REG_VT_DWORD),$(IOBasePCMCIAValue)},+
  1472.             {IoLength,$(NoTitle),$(!REG_VT_DWORD),31},+
  1473.             {PCCARDAttributeMemoryAddress,$(NoTitle),$(!REG_VT_DWORD),$(MemWinValue)},+
  1474.             {PCCARDAttributeMemorySize, $(NoTitle),$(!REG_VT_DWORD),4096},+
  1475.             {PCCARDAttributeMemoryOffset, $(NoTitle),$(!REG_VT_DWORD),0},+
  1476.             {InterruptNumber,$(NoTitle),$(!REG_VT_DWORD),$(InterruptValue)},+
  1477.             {RingSpeed,$(NoTitle),$(!REG_VT_DWORD),$(RingSpeedValue)},+
  1478.             {ComPortBase,$(NoTitle),$(!REG_VT_DWORD),$(ComPortValue)},+
  1479.             {PcmciaCtrlBase,$(NoTitle),$(!REG_VT_DWORD),$(IOBasePCMCIAControllerValue)},+
  1480.             {Pcmcia,$(NoTitle),$(!REG_VT_DWORD),1},+
  1481.                         {WaitStates,$(NoTitle),$(!REG_VT_DWORD),$(WaitstateValue)},+
  1482.             {DataSize,$(NoTitle),$(!REG_VT_DWORD),$(DatasizeValue)}}
  1483.  
  1484.     ifstr $(NetworkAddress) != ""
  1485.        set NewValueList = >($(NewValueList),{NetworkAddress,$(NoTitle),$(!REG_VT_SZ),$(NetworkAddress)})
  1486.     endif
  1487.     ;
  1488.     ; Now update registry
  1489.     ;
  1490.     Shell  $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)
  1491.     ifstr(i) $(!STF_GUI_UNATTENDED) == "YES"
  1492.     Shell $(UtilityInf),AddDefaultNetCardParameters,$(KeyParameters)
  1493.     endif
  1494.     ;
  1495.     ; If the network address has been deleted then also delete it from
  1496.     ; the registry.
  1497.     ;
  1498.     ifstr $(OldNetAddress) != ""
  1499.        ifstr $(NetworkAddress) == ""
  1500.       DeleteRegValue $(KeyParameters) NetworkAddress
  1501.        endif
  1502.     endif
  1503.     ;
  1504.     ; If we're not installing a PCMCIA Card, remove PCMCIA specific settings
  1505.     ;
  1506.     ifstr(i) $(Option) == "OCTK16"
  1507.         DeleteRegValue $(KeyParameters) IoBaseAddress
  1508.         DeleteRegValue $(KeyParameters) IoLength
  1509.         DeleteRegValue $(KeyParameters) PCCARDAttributeMemoryAddress
  1510.         DeleteRegValue $(KeyParameters) PCCARDAttributeMemorySize
  1511.         DeleteRegValue $(KeyParameters) PCCARDAttributeMemoryOffset
  1512.         DeleteRegValue $(KeyParameters) InterruptNumber
  1513.         DeleteRegValue $(KeyParameters) RingSpeed
  1514.         DeleteRegValue $(KeyParameters) ComPortBase
  1515.         DeleteRegValue $(KeyParameters) PcmciaCtrlBase
  1516.         DeleteRegValue $(KeyParameters) Pcmcia
  1517.         DeleteRegValue $(KeyParameters) WaitStates
  1518.         DeleteRegValue $(KeyParameters) DataSize
  1519.     Endif
  1520.     ifstr(i) $(Option) == "PCMCIA"
  1521.         DeleteRegValue $(KeyParameters) ComPortBase
  1522.     Endif
  1523.  
  1524.     CloseRegKey $(KeyParameters)
  1525.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1526.     Debug-Output "ShellCode error."
  1527.     goto ShellCodeError
  1528.     endif
  1529.     set RegistryErrorIndex = $($R0)
  1530.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1531.     Debug-Output "Registry error: Add value list"
  1532.     goto fatalregistry
  1533.     endif
  1534. ;
  1535. ; Add some keywords to the PCMCIA database in the registry
  1536. ;
  1537.     ifstr(i) $(Option) == "PCMCIA"
  1538.         set PCMCIADatabaseKeyName = $(!NTN_ServiceBase)"\Pcmcia\DataBase"
  1539.         OpenRegKey $(!REG_H_LOCAL) "" $(PCMCIADatabaseKeyName) $(MAXIMUM_ALLOWED) PCMCIADatabaseKey
  1540.         ifstr $(PCMCIADatabaseKey) != $(NULL)    
  1541.             OpenRegKey $(!REG_H_LOCAL) "" $(PCMCIADatabaseKeyName) $(MAXIMUM_ALLOWED) PCMCIADatabaseOlicomKey
  1542.             ifstr $(PCMCIADatabaseOlicomKey) != $(NULL) ; open succeeded, so delete it
  1543.                 CloseRegKey $(PCMCIADatabaseOlicomKey)
  1544.                 DeleteRegTree $(PCMCIADatabaseKey) "Olicom"
  1545.             endif
  1546.             CreateRegKey $(PCMCIADatabaseKey) {"Olicom", 0, 0} "" $(MAXIMUM_ALLOWED) "" PCMCIADatabaseOlicomKey
  1547.             CreateRegKey $(PCMCIADatabaseOlicomKey) {"TR16/4", 0, 0} "" $(MAXIMUM_ALLOWED) 0 PCMCIADatabaseOlicom3220Key
  1548.             SetRegValue $(PCMCIADatabaseOlicom3220Key) {Driver, 0, $(!REG_VT_SZ),"octk16"}
  1549.             CloseRegKey $(PCMCIADatabaseOlicom3220Key)
  1550.             CreateRegKey $(PCMCIADatabaseOlicomKey) {"TR 16/4 II", 0, 0} "" $(MAXIMUM_ALLOWED) 0 PCMCIADatabaseOlicom3221Key
  1551.             SetRegValue $(PCMCIADatabaseOlicom3221Key) {Driver, 0, $(!REG_VT_SZ),"octk16"}
  1552.             CloseRegKey $(PCMCIADatabaseOlicom3221Key)
  1553.     ;
  1554.     ;       When NT 3.51 sees our Combo cards, it enables a COM port only.
  1555.     ;       We therefore rely on our own enabling mechanism in these cases.
  1556.     ;
  1557.     ;       CreateRegKey $(PCMCIADatabaseOlicomKey) {"GoCard Token-Ring 16/4+Modem 14400", 0, 0} "" $(MAXIMUM_ALLOWED) 0 PCMCIADatabaseOlicom3230Key
  1558.     ;       SetRegValue $(PCMCIADatabaseOlicom3230Key) {Driver, 0, $(!REG_VT_SZ),"octk16"}
  1559.     ;       CloseRegKey $(PCMCIADatabaseOlicom3230Key)
  1560.     ;       CreateRegKey $(PCMCIADatabaseOlicomKey) {"GoCard Token-Ring 16/4+Modem 28800", 0, 0} "" $(MAXIMUM_ALLOWED) 0 PCMCIADatabaseOlicom3231Key
  1561.     ;       SetRegValue $(PCMCIADatabaseOlicom3231Key) {Driver, 0, $(!REG_VT_SZ),"octk16"}
  1562.     ;       CloseRegKey $(PCMCIADatabaseOlicom3231Key)
  1563.     
  1564.             CloseRegKey $(PCMCIADatabaseOlicomKey)
  1565.         Endif
  1566.     Endif
  1567.  
  1568.     EndWait
  1569.     goto successful
  1570.  
  1571. bindingadapter =+
  1572.     set Error = "Binding: Sorry, not yet implemented."
  1573.     goto fatal
  1574.  
  1575. ;-----------------------------------------------
  1576. ; Remove Adapter Section
  1577. ;-----------------------------------------------
  1578. ;
  1579. ;   Remove all adapter information from the registry
  1580. ;
  1581. removeadapter = +
  1582.     Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  1583.     Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  1584.         $(ProductSoftwareName)
  1585.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1586.         Debug-Output "ShellCode error"
  1587.         goto ShellCodeError
  1588.     endif
  1589.     set RegistryErrorIndex = $($R0)
  1590.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1591.         goto fatalregistry
  1592.     endif
  1593.     else
  1594.     Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  1595.         $(ProductSoftwareName), $(!NTN_RegBase)
  1596.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1597.         Debug-Output "ShellCode error"
  1598.         goto ShellCodeError
  1599.     endif
  1600.     set RegistryErrorIndex = $($R0)
  1601.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1602.         goto fatalregistry
  1603.     endif
  1604.     ;
  1605.     ; Remove associated Com port
  1606.     ;
  1607.         ifstr(i) $(Option) == "COMBO"
  1608.         OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services\Serial\Parameters" $(MAXIMUM_ALLOWED) SerialHandle
  1609.         DeleteRegTree $(SerialHandle) "SerialOctk16"$(AdapterNumber)
  1610.         CloseRegKey $(SerialHandle)
  1611.         endif
  1612.     endif
  1613.     goto end
  1614.  
  1615. UpgradeSoftware = +
  1616.     ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  1617.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  1618.     Ifstr $(KeyProduct) != $(KeyNull)
  1619.         GetRegValue $(KeyProduct),"MajorVersion", VersionInfo
  1620.         set Version = *($(VersionInfo), 4)
  1621.         Shell $(UtilityInf), GetInfFileNameFromRegistry, $(KeyProduct)
  1622.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1623.         Debug-Output "ShellCode error"
  1624.         goto ShellCodeError
  1625.         endif
  1626.         set !UG_Filename = $($R0)
  1627.         ifstr(i) $(!UG_Filename) != ""
  1628.         install "Install-Update"
  1629.         ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  1630.             goto fatal
  1631.         endif
  1632.         endif
  1633.         SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}
  1634.         SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}
  1635.         ifint $(Version) != $(ProductVersion)
  1636.         endif
  1637.         CloseRegKey $(KeyProduct)
  1638.     else
  1639.         goto fatalregistry
  1640.     endif
  1641.     else
  1642.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) +
  1643.           $(MAXIMUM_ALLOWED) NetworkCardKey
  1644.     Ifstr(i) $(NetworkCardKey) != $(KeyNull)
  1645.         GetRegValue $(NetworkCardKey),"ServiceName", ServiceNameInfo
  1646.         set ServiceName = *($(ServiceNameInfo), 4)
  1647.         OpenRegKey $(NetworkCardKey) "" "NetRules" +
  1648.         $(MAXIMUM_ALLOWED) NetRuleKey
  1649.         Ifstr(i) $(NetRuleKey) != $(KeyNull)
  1650.         else
  1651.         CloseRegKey $(NetworkCardKey)
  1652.         goto fatalregistry
  1653.         endif
  1654.         CloseRegKey $(NetRules)
  1655.         CloseRegKey $(NetworkCardKey)
  1656.     else
  1657.         goto fatalregistry
  1658.     endif
  1659.     OpenRegKey $(!REG_H_LOCAL) "" +
  1660.           $(!NTN_ServiceBase)"\"$(ServiceName) +
  1661.           $(MAXIMUM_ALLOWED) ServiceKey
  1662.     Ifstr(i) $(ServiceKey) != $(KeyNull)
  1663.         CloseRegKey $(ServiceKey)
  1664.     else
  1665.         goto fatalregistry
  1666.     endif
  1667.     endif
  1668.     goto end
  1669. successful = +
  1670.     goto end
  1671. abandon = +
  1672.     ForListDo $(OEM_ABANDON_OPTIONS)
  1673.     Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  1674.         $(ProductSoftwareName), $($)
  1675.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1676.         Debug-Output "ShellCode error"
  1677.         goto ShellCodeError
  1678.     endif
  1679.     set RegistryErrorIndex = $($R0)
  1680.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1681.         goto fatalregistry
  1682.     endif
  1683.     EndForListDo
  1684.     Ifstr(i) $(OEM_ABANDON_SOFTWARE) == TRUE
  1685.     Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  1686.         $(ProductSoftwareName), FALSE
  1687.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1688.         Debug-Output "ShellCode error"
  1689.         goto ShellCodeError
  1690.     endif
  1691.     set RegistryErrorIndex = $($R0)
  1692.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1693.         goto fatalregistry
  1694.     endif
  1695.     endif
  1696.     goto end
  1697. warning = +
  1698.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
  1699.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1700.     goto ShellCodeError
  1701.     endif
  1702.     ifstr(i) $($R1) == "OK"
  1703.     goto $(to)
  1704.     else-ifstr(i) $($R1) == "CANCEL"
  1705.     goto $(from)
  1706.     else
  1707.     goto "end"
  1708.     endif
  1709. nonfatalinfo = +
  1710.     Set Severity = STATUS
  1711.     Set CommonStatus = STATUS_USERCANCEL
  1712.     goto nonfatalmsg
  1713. nonfatal = +
  1714.     Set Severity = NONFATAL
  1715.     goto nonfatalmsg
  1716. nonfatalmsg = +
  1717.     ifstr(i) $(Error) == ""
  1718.     Set Severity = NONFATAL
  1719.     Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  1720.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1721.         goto ShellCodeError
  1722.     endif
  1723.     set Error = $($R0)
  1724.     endif
  1725.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
  1726.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1727.     goto ShellCodeError
  1728.     endif
  1729.     ifstr(i) $($R1) == "OK"
  1730.     goto $(from)
  1731.     else
  1732.     goto "end"
  1733.     endif
  1734. fatalregistry = +
  1735.     Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
  1736.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1737.     goto ShellCodeError
  1738.     endif
  1739.     set Error = $($R0)
  1740.     goto fatal
  1741. fatal = +
  1742.     ifstr(i) $(Error) == ""
  1743.     Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  1744.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1745.         goto ShellCodeError
  1746.     endif
  1747.     set Error = $($R0)
  1748.     endif
  1749.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
  1750.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1751.     goto ShellCodeError
  1752.     endif
  1753.     goto setfailed
  1754. ShellCodeError = +
  1755.     set DlgType      = "MessageBox"
  1756.     set STF_MB_TITLE = "Error: "$(FunctionTitle)
  1757.     set STF_MB_TEXT  = "Shell Code Error"
  1758.     set STF_MB_TYPE  = 1
  1759.     set STF_MB_ICON  = 3
  1760.     set STF_MB_DEF   = 1
  1761.     ui start "Error Message"
  1762.     goto setfailed
  1763. setfailed = +
  1764.     set CommonStatus = STATUS_FAILED
  1765.     ifstr(i) $(OEM_ABANDON_ON) == TRUE
  1766.     set OEM_ABANDON_ON = FALSE
  1767.     goto abandon
  1768.     endif
  1769.     goto end
  1770. end = +
  1771.     goto term
  1772. term = +
  1773.     Return $(CommonStatus)
  1774.  
  1775. [Install-Option]
  1776.     set STF_VITAL = ""
  1777.     ifstr(i) $(AddCopy) == "YES"
  1778.     AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  1779.     AddSectionFilesToCopyList Files-Stat $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1780.     endif
  1781.     Debug-Output "OEMSETUP.INF: [Install-Option] DoCopy = "$(DoCopy)
  1782.     ifstr(i) $(DoCopy) == "YES"
  1783.        set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1784.        CopyFilesInCopyList
  1785.     endif
  1786.     Exit
  1787.  
  1788. [Install-Update]
  1789.    set STF_VITAL        = ""
  1790.    set STF_OVERWRITE    = "VERIFYSOURCEOLDER"
  1791.    AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  1792.    AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1793.    AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1794.    AddSectionFilesToCopyList Files-Stat $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1795.    set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1796.    CopyFilesInCopyList
  1797.    exit
  1798.  
  1799. [Install-Dll]
  1800.    set STF_VITAL        = ""
  1801.    ifstr(i) $(AddCopy) == "YES"
  1802.       AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1803.    endif
  1804.    ifstr(i) $(DoCopy) == "YES"
  1805.       set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1806.       CopyFilesInCopyList
  1807.    endif
  1808.    exit
  1809.  
  1810. [Source Media Descriptions]
  1811.     1  = "WINDOWS NT DRVLIB"
  1812.  
  1813. [Signature]
  1814.     FileType = MICROSOFT_DRVLIB_FILE
  1815. [GetSignature]
  1816.     read-syms Signature
  1817.     return $(FileType)
  1818.  
  1819. [ProductType]
  1820. STF_PRODUCT  = Winnt
  1821. STF_PLATFORM = I386
  1822.  
  1823. [Files-Inf]
  1824. 1,      oemsetnt.inf,   SIZE=999,       RENAME=$(!UG_Filename)
  1825.  
  1826. [Files-OcTk16]
  1827. 1,      octk16.sys,     SIZE=999
  1828.  
  1829. [Files-PCMCIA]
  1830. 1,      octk16.sys,     SIZE=999
  1831.  
  1832. [Files-COMBO]
  1833. 1,      octk16.sys,     SIZE=999
  1834. 1,      serial.sys,     SIZE=999
  1835.  
  1836. [Files-Dll]
  1837. 1,      octk16.dll,     SIZE=999
  1838. 1,      octk16.hlp,     SIZE=999
  1839.  
  1840. [Files-Stat]
  1841. 1,      octkstat.exe,   SIZE=999
  1842.  
  1843. [Files-dummy]
  1844.  
  1845.